package com.itheima.dfs.feign;

import com.itheima.common.pojo.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * @Author：shenkunlin
 * @date： 2021/8/23 14:56
 * @Description：
 ***/
@FeignClient(value = "leadnews-dfs")
public interface DfsFeign{

    /***
     * 删除图片
     */
    @DeleteMapping(value = "/delete")
    Result delete(String path);

    /***
     * 下载
     */
    @GetMapping(value = "/download")
    void download(String path) throws IOException;

    /***
     * 批量下载
     */
    @PostMapping(value = "/list/download")
    List<byte[]> download(@RequestParam List<String> images) throws Exception;

    /**
     * 文件上传
     * 1)创建文件上传方法
     * 2)接收文件，封装对象-MultipartFile
     * 3)文件参数
     *     1：后缀
     *     2：文件字节码数组
     *     3：文件大小
     * 4)将文件上传到FastDFS
     * 5)怎么上传？核心对象有哪些？
     *     1：文件上传对象 FastFileStorageClient
     *     2：文件上传后的文件访问服务地址-FdfsWebServer获取（fdfs.web-server-url）
     */
    @PostMapping(value = "/upload")
    Result upload(@RequestParam(value = "image") MultipartFile file) throws IOException;
}
